package net.tngou.crawler.drug;

import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang3.math.NumberUtils;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.alibaba.fastjson.JSONObject;

import net.tngou.c4j.util.HttpUtil;
import net.tngou.cache.CacheEngine;
import net.tngou.cache.TgCacheEngine;
import net.tngou.crawler.util.StringUtil;

/**
 * 康之家
 * @author tngou@tngou.net
 *
 */
public class COM_Kzj365 extends BaseCrawler implements CrawlerDrug{
	private static final Logger log= LoggerFactory.getLogger(COM_Kzj365.class);	
	private String url="http://www.kzj365.com/goods-{}.html";

	

	@Override
	public JSONObject getJson(URL url) {
		log.info("请求页面:{}",url.toString());
		Document doc = HttpUtil.get(url.toString());
		if(doc==null||doc.text().indexOf("页面访问错误")>0)return null;
		
		json.put("url", url.toString());
		json.put("onlinepharmacy", onlinepharmacy);
		//唯一值
		String[] uns = url.toString().split("-");
		json.put("un",uns[uns.length-1].replaceAll(".html", "-").split("-")[0]);
		//标签
		Elements crumbs = doc.getElementsByClass("crumbs-nav");
		if(crumbs.first()!=null)
		{
			Elements as = crumbs.first().getElementsByTag("a");
			List<String> list = new ArrayList<>();
			for (int i = 1; i < as.size(); i++) {
				list.add(as.get(i).text());
			}				
			json.put("tag", list);
		}
		//图片
		Elements pimgs = doc.getElementsByClass("spec-items");
		if(pimgs.first()!=null)
		{
			Elements imgs = pimgs.first().getElementsByTag("img");
			List<String> list = new ArrayList<>();
			imgs.forEach(e->{
				String src = e.attr("data-url");
				if(StringUtil.isNotEmpty(src))
				{
					list.add(src);
				}
			});
			json.put("picture", list);
		}
		//价格
		Element price = doc.getElementById("rprice");
		if(price!=null)
		{	
			String value = price.text();
			if(NumberUtils.isNumber(value))
			{
				json.put("price", Float.parseFloat(value));
			}
		}
		//类型	
		Elements title = doc.getElementsByClass("gi-title");
		if(title.first()!=null)
		{
			String s = title.first().getElementsByTag("h1").toString();
			if(StringUtil.isNotEmpty(s))
			{
				if(s.toUpperCase().indexOf("RX")>=0)
				{
					json.put("ptype", Ptype.RX处方药.ordinal());
				}else if(s.toUpperCase().indexOf("OTC")>=0)
				{
					json.put("ptype", Ptype.OTC非处方甲类.ordinal());
					if(s.toUpperCase().indexOf("GREEN-OTC")>=0)
					{
						json.put("ptype", Ptype.OTC非处方乙类.ordinal());
					}
				}
			}
		}
		//说明书
		Elements instruction = doc.getElementsByClass("detail-manual");
		if(instruction.first()!=null)
		{
			JSONObject instructions = instructions_tr_td_td(instruction.first());
			Elements out = doc.getElementsByClass("gi-info-out");
			if(out.first()!=null)
				instructions=instructions(out.first(),instructions);
			json.put("instructions",instructions );
		
		}
		return json;
	}
	private JSONObject instructions(Element element, JSONObject json) {
		Elements infos = element.getElementsByClass("gi-info");
		for (Element info : infos) {
			Element left = info.getElementsByClass("gi-left").first();
			Element right = info.getElementsByClass("gi-right").first();
			if(left!=null&&right!=null)
				if("批准文号".equals(left.text()))
				{
					json.put(left.text(), right.text().split(" ")[0]);
				}
		  }
		
		return name_number(json);
	}
	

}
